/*************************************************************************
	> File Name: 003.HZOJ-48.完全背包.cpp
	> Author: Maureen 
	> Mail: Maureen@qq.com 
	> Created Time: 一  6/28 22:50:26 2021
 ************************************************************************/

#include <iostream>
using namespace std;

int V, n, v[10005], w[10005], ans[10005][10005];

int main() {
    cin >> n >> V;
    for (int i = 1; i <= n; i++) {
        cin >> v[i] >> w[i];
    }

    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= V; j++) {
            if (j < v[i]) {
                ans[i][j] = ans[i - 1][j];
            } else {
                //因为每件商品的数量是无限的，所以如果装第i种物品，可以用剩余的容量继续装前i种物品
                ans[i][j] = max(ans[i - 1][j], ans[i][j - v[i]] + w[i]); 
            }
        }
    }
    cout << ans[n][V] << endl;

    return 0;
}
